export interface InterviewQuestion {
  id: string
  title: string
  difficulty: string
  tags: string
  link: string
  source: string
  viewCount: number
  likeCount: number
  collectCount: number
  status: string
  createdTime: string
  updatedTime: string
}

export interface PageRequest {
  pageNum: number
  pageSize: number
  orders?: Order[]
}

export interface Order {
  column: string
  asc: boolean
}

export interface PageResult<T> {
  records: T[]
  total: number
  size: number
  current: number
}

export interface MockExamVO {
  interviewQuestionId: string
  mockQuestions: MockQuestion[]
}

export interface MockQuestion {
  overview: string
  questionItems: QuestionItem[]
}

export interface QuestionItem {
  question: string
  options: Option[]
  answer: string
  explanation: string
}

export interface Option {
  optionKey: string
  optionValue: string
  isCorrect: boolean
}

export interface TagVO {
  tagName: string
  tagCount: number
}

export interface PracticeQuestionVO {
  id: string
  questionIndex: number
  interviewQuestionId: string
  overview: string
  question: string
  options: Option[]
  answer: string
  explanation: string
}

